\section{Conclusion}
\label{sec:conclusion}
We feel that our solution properly fulfills the requirements of the assignment. The program updates the LED light to the intended position and stops at the borders of the LED array. We have also demonstrated that interrupts are used to respond to input from the buttons. As mentioned in Section \ref{subsec:interrupts} we could perhaps have had more emphasis on not storing constants in specific registers, but make better use of the memory. This critisism towards our solution is merely a thhought, and does not strictly violate the requirements of the assignment. There is also another minor flaw in our code. We set up two pointers \lstinline&lbs_ptr& and \lstinline&cbs_ptr& pointing respectively to the variables \lstinline&last_button_state& and \lstinline&current_button_state&. This is not strictly necessary since \lstinline&last_button_state& is never read from, we only store a value here.
\\\\
The exercise was a little bit daunting at first, since the whole AVR32 assembly environment was new to us. However when the initial difficulties were sorted out, the exercise proved to be engaging and valuable. We have learned the process of writing simple assembly and running it on the STK1000 board, as well as using the GDB debugger. This skillset will undoubtly become paramount for the next assignments.